//进度条循环
let Cycle = function(){
    let bar = document.querySelectorAll('.bar');
    var i = 0;
    //将进度条显示出来
    for(i=0;i<6;i++){
        bar[i].parentNode.style.display="block";
    }
    var go = setInterval(function(){
        //所有bar修改属性
        bar.forEach(function(temp){
            //对未显示的进行自动重置计数器
            if(temp.parentNode.parentNode.style.display==""){
                temp.style.width =  '0%';
                temp.innerText =  '0%';     
                return ;//函数中直接返回
            }            
            //获取内部文本进行修改
            i=temp.innerText;
            i=i.substr(0,i.length-1);
            i=Number(i);
            i++;
            //自增后进度条满了就重置
            if (i > 100) {
                i=0;//恢复
                temp.parentNode.parentNode.style.display="";
                setInterval(go);//循环
            }
            //将内部数据显示到html上
            temp.style.width = i + '%';
            temp.style.transition="width 50ms";
            temp.innerText = i + '%';        

        });
        
    },500);
};
/*菜品数组*/
let foods = {
    // 名字(name),烹饪时间(cooktime),成本(price),点这菜的人的位置(source),顾客的等待时间(waittime),菜品种类(type)
    0:{name:"香精煎鱼",cooktime:3,price:35,source:-1,waittime:15,type:"dinner",index:0},
    1:{name:"油饼",cooktime:2,price:3,source:-1,waittime:5,type:"meal",index:1},
    2:{name:"莓油酥汁汤",cooktime:4,price:40,source:-1,waittime:20,type:"drink",index:2},
    3:{name:"卤粗鸡爪汁",cooktime:2,price:5,source:-1,waittime:8,type:"drink",index:3},
    4:{name:"香翅捞饭",cooktime:2,price:15,source:-1,waittime:9,type:"dinner",index:4},
    5:{name:"香带烧烤",cooktime:2,price:20,source:-1,waittime:10,type:"meal",index:5},
    6:{name:"白米饭",cooktime:3,price:5,source:-1,waittime:7,type:"dinner",index:6}
};
// 不同种类菜品的颜色(主红菜蓝饮绿)
let colors={
    "dinner":"#ff2626",
    "meal":"#2693ff",
    "drink":"#80ff00",
};
//菜品利润
let food_profit=1.2;
//待煮队列
let CookWait=[];
//备用菜品队列(存储下标)
let Bin={
    0:0,1:0,2:0,3:0,4:0,5:0,6:0
};
//引用拷贝（菜品都为基本类型，选择浅拷贝）
function Copy(oldfood){
    let newfood={};
    for (var key in oldfood) {
        newfood[key]=oldfood[key];
    }
    return newfood;
}

/*时间计算*/
let weekendCount=1;//拿来计算周的时间
let dayCount=1;//拿来计算天的时间
let weekend = document.getElementById("weekend");
let day = document.getElementById("day");

// 游戏彩蛋：0厨师游戏结束
const gameOver=document.querySelector(".gameOver");
document.getElementById("yes_over").addEventListener('click',function(){
    //window.open("http://img.mp.itc.cn/upload/20161230/2f19b222e17d49979eef5505ff56f95f_th.jpeg","_self");
    if(sa1_1.innerHTML=="???")
        sa1_1.innerHTML=sa1_name+" （未达成）";
    if(sa2_1.innerHTML=="???")
        sa2_1.innerHTML=sa2_name+" （未达成）";
    if(sa4_1.innerHTML=="???")
        sa4_1.innerHTML=sa4_name+" （未达成）";
    sa3_1.innerHTML=sa3_name; // 特殊成就 sa3 更新
    sa3_2.innerHTML=sa3_description;
    var all_element = document.querySelectorAll('main >*');
    Array.from(all_element).forEach(function(each_element){
        each_element.style.display="none";
    });
    document.body.style.background="none";
    document.getElementById("game_over_div").style.display="none";
    document.getElementById("close_AS_button_div").style.display="none";
    document.getElementById("game_restart_div").style.margin="auto";
    document.getElementById("achievement_system").style.display="block";
});
document.getElementById("no_over").addEventListener('click',function(){
    location.reload();
});

// 财产:最初1000
let money=1000;
let Money=document.getElementById("Money_Text");
//监听money变化并实时显示到html
setInterval(()=>{
    Money.innerHTML=money;
    if(money>na2_money)
    { // 普通成就 na2 更新
        na2_money=money;
        na2.innerHTML=money;
    }
},100);

// 厨师初始化
let cooker=[];//厨师内部数据
let chef=[];//厨师数组
let cookCount=[];//每个工位上的煮菜功能
let cookTiming=[];//每个工位上煮菜的闹钟(倒计时)
let delivery=document.querySelectorAll(".deliver-img");//获取所有手动上菜标志
let chefnum=1;//厨师数量，刚开始1个
let tempCooker;//存储临时厨师信息
const addchef=document.querySelector(".add-chef");//用来响应添加厨师的
const addchef_confirm=document.querySelector(".add-chef-confirm");//添加厨师的确认框
const freebutton=document.querySelectorAll(".free");//解雇
addchef.addEventListener('click',Addchef_confirm);//点击招聘时应该执行招聘确认方法。再通过yes或者no去判断是否执行添加厨师方法。
freebutton.forEach(function(temp){//foreach遍历解雇按钮数组添加解雇事件
    temp.addEventListener('click',freechef);
});

//顾客
let customer;//被点击的等待客人
let Incoming=document.querySelectorAll(".income_img");//所有收钱图标
let waiter=[];//6个等待位
let eater=[];//4个就餐位
let spare=[];//4个就餐位的空闲标志
let innerCustomer=[];//就餐位内部对应的顾客数据
let eat=1;//标识座位人数
let refresh_rate=0.2;//等待区刷新率
let waiting_rate=1.5;//等待时间倍率
const order=document.querySelector(".order_dish");//点菜窗口
const yes_order=document.getElementById("yes_order");//确定点餐
const no_order=document.getElementById("no_order");//取消点餐
yes_order.addEventListener('click',orderyes);
no_order.addEventListener('click',orderno);
//定义顾客类:姓名,点菜,心情[normal正常，angry发怒,happy开心，正常->发怒->开心->正常(发怒后经过安慰等到了饭)/正常->开心(发怒前吃上所有饭)]
//等待时间(可用做等待区的存在时间及就餐区的存在时间),最后给的钱
function Customer(name,command,mood,seat,waitingtime,reward,waitingRecord){
    this.name=name;
    this.command=command;
    this.mood=mood;
    this.seat=seat;
    this.waitingtime=waitingtime;
    this.reward=reward;
    this.waitingRecord=waitingRecord;
}
//初始化等待位
for(let i=1;i<=6;i++){
    waiter.push(document.getElementById("wait"+i));
    waiter[i-1].addEventListener('click',choose);//点菜
}
//初始化就餐位
for(let i=1;i<=4;i++){
    eater.push(document.getElementById("eat"+i));
    spare.push(true);
    innerCustomer.push(new Customer(Math.random().toString(36).slice(-8),[],"normal",undefined,undefined,0,null));
    Incoming[i-1].addEventListener('click',getIncome);
}
//定义厨师类:名字，工资，工作时间，工作状态(暂定存取菜品本身,null为空闲状态)
function Cooker(name,salary,worktime,occupy){
    this.name=name;
    this.salary=salary;
    this.worktime=worktime;
    this.occupy=occupy;
}
// 每一位厨师的名字由36进制随机数组成，工资随时间增长:保底50加上随机数(40+7*周数+天数),工作时间初始化为0
cooker[0]=new Cooker(Math.random().toString(36).slice(-8),(Math.round(Math.random()*40)+50),0,null);
for(let i=1;i<=6;i++){
    chef.push(document.getElementById("chef"+i));//添加厨师
    cookCount.push(null);//工位的煮菜功能初始化
    cookTiming.push(null);//工位的煮菜闹钟初始化
    delivery[i-1].addEventListener('click',deliver);//添加手动上菜相应
    // chef[i-1].addEventListener('click',cook);//煮菜
    if(i!=1){
        chef[i-1].style.display="none";
    }
}

// 手动收费函数
function getIncome(Event){
    Event=Event?Event:window.event;
    obj=Event.srcElement ? Event.srcElement : Event.target; //获取到要收钱的
    let target=obj.parentNode.parentNode;//获取对应顾客框
    let data=target.getElementsByClassName("customer-icon")[0];//获取顾客头像
    let idx=eater.indexOf(data.getElementsByClassName("customer_img")[0]);//获取顾客桌子号
    eat--;//减少在店顾客数量
    spare[idx]=true;//桌子变有空
    clearTimeout(innerCustomer[idx].waitingRecord);//将不耐烦离场行为撤销
    innerCustomer[idx].waitingRecord=null;//将不耐烦处理重置
    money+=Math.floor(food_profit*innerCustomer[idx].reward);//拿走报酬
    innerCustomer[idx].reward=0;//重置报酬
    eater[idx].src="";//撤走头像
    eater[idx].style.transition="src 0.5s";//头像渐变消失
    eaterbgcolor[idx].style.background="linear-gradient(-90deg, var(--darkGrey) 50%, var(--lightGrey) 50%)";//回复原色
    target.getElementsByClassName("income-icon")[0].style.display="none";//撤走收钱提醒
}

//解雇失败框点击消除
let fireFail=document.querySelector(".fireFail");
fireFail.addEventListener("click",function(){
    fireFail.style.display="none";
});
//解雇详情的确认与取消
//确定和取消
let yes_free=document.getElementById("yes_free");
let no_free=document.getElementById("no_free");
yes_free.addEventListener('click',function(){
    //比较工资,不够不许解雇
    if(money<cooker[cooker.indexOf(tempCooker)].salary){
        fireFail.style.display="flex"; 
        fireFail.innerHTML="您的财产不足,解雇失败";
    }
    else{
        //够钱就解雇
        chefnum--;
        money-=cooker[cooker.indexOf(tempCooker)].salary;//扣去解聘工资
        chef[cooker.indexOf(tempCooker)].style.display="none";//网页上把该厨师栏隐藏
        cooker[cooker.indexOf(tempCooker)]=null;//解聘之后内部数据变空
        document.querySelector(".free-chef-confirm").style.display="none";//隐藏解聘确认栏

        //彩蛋环节之没厨师gamevoer
        if(chefnum<1){
            gameOver.style.display="flex";
        }
    }
});//除了解雇失败，都要将解雇确认框消除
no_free.addEventListener('click',()=>{document.querySelector(".free-chef-confirm").style.display="none";});
//解雇厨师
function freechef(Event){
    Event=Event?Event:window.event;
    obj=Event.srcElement ? Event.srcElement : Event.target; //获取到被解雇的
    cooker_free=obj.parentNode.parentNode;//获取该厨师框
    //判断是否能够删除并完成删除
    freeChefconfirm(chef.indexOf(cooker_free));
}
//解雇确认框
function freeChefconfirm(idx){
    //显示界面
    let free_confirm=document.querySelector(".free-chef-confirm");
    free_confirm.style.display="flex";

    //内容填充
    let chef_information=document.getElementById("chef_information");
    let free_price=document.getElementById("free_price");
    chef_information.textContent="你确定要解雇工龄"+cooker[idx].worktime+"天的"+cooker[idx].name+"吗？";
    free_price.textContent="你需要支付雇赔偿金:"+cooker[idx].salary;
    tempCooker=cooker[idx];//记录可能被解雇的厨师
}

/*每隔60000毫秒算一天，这个函数每隔60000毫秒就会自动执行一次，用来模拟一天的事务*/
/*时间后面可以更改，我这里先写个时间的变化*/
// emmm，这个init方法是模拟一天操作的方法.
function init(){
    setInterval(()=>{
        dayCount++;
        day.innerHTML="D"+dayCount;        
        // 每日结束增加所有人的工作时间
        for(let i=0;i<6;i++){
            if(chef[i].style.display!="none"){
                cooker[i].worktime++;
            }
        }
        // 每周结算工资
        if(dayCount>7){
            weekendCount++;
            dayCount=1;
            day.innerHTML="D"+dayCount;
            weekend.innerHTML="W"+weekendCount;
            food_profit+=0.1;
            waiting_rate+=0.1;
            if(refresh_rate<0.6)
                refresh_rate+=0.1;
            else
                refresh_rate-=Math.round(Math.random()*6)/10.0;
            for(i=0;i<6;i++){
                //工位上有人才扣工资
                if(chef[i].style.display!="none"){
                    //每周按实际工作时间付工资
                    money-=Math.min(7,cooker[i].worktime)/7*cooker[i].salary;
                    cooker[i].salary+=5;
                }
            }
        }
        // 成就更新
        na1_day++; // 普通成就 na1 更新
        na1.innerHTML=na1_day;
        na3_all_person+=today_person; // 普通成就 na3 更新
        na3.innerHTML=na3_all_person;
        na4_all_food+=today_food; // 普通成就 na4 更新
        na4.innerHTML=na4_all_food;
        if(today_person>na5_per_person)
        { // 普通成就 na5 更新
            na5_per_person=today_person;
            na5.innerHTML=na5_per_person;
        }
        if(today_food>na6_per_food)
        { // 普通成就 na6 更新
            na6_per_food=today_food;
            na6.innerHTML=na6_per_food;
        }
        if(today_person==0&&sa1_1.innerHTML=="???")
        { // 特殊成就 sa1 更新
            sa1_1.innerHTML=sa1_name;
            sa1_2.innerHTML=sa1_description;
        }
        if(today_wait==0&&sa2_1.innerHTML=="???")
        { // 特殊成就 sa2 更新
            sa2_1.innerHTML=sa2_name;
            sa2_2.innerHTML=sa2_description;
        }
        today_wait=0;
        today_person=0;
        today_food=0;
    },60000);
}

// 欢迎的响应,点击开始文字就关闭这个welcome界面
document.getElementById("start").addEventListener("click",function(){
    let welcome = document.getElementById("welcome");
    welcome.style.display = "none";
    init();//时间初始化
    Cycle();//进度条轮转
    customerReturn();//等待区顾客补充
})


// 厨师招聘确认 
function Addchef_confirm(){
    //让确认信息提示框展现出来
    addchef_confirm.style.display="flex";
    // 显示厨师信息
    tempCooker=new Cooker(Math.random().toString(36).slice(-8),(Math.round(Math.random()*40+7*weekendCount+dayCount)+50),0,null);
    document.getElementById("chefDetail").innerHTML="3.该厨师相关信息(名字/工资):   "+tempCooker.name+"\t"+tempCooker.salary+"块钱/周";
}
//如果点击了yes。
document.getElementById("yes").addEventListener("click",function(){
    //添加厨师的函数我完善放在确认（yes）函数里面了。
    //少于6名厨师时直接添加
    chefnum++;
    // 遍历位置寻找空位招聘厨师
    for(let i=0;i<6;i++){
        if(chef[i].style.display=="none"){
            chef[i].style.display="flex";//block就不一致了
            cooker[i]=tempCooker;//内部数据添加
            break;
        }
    }
    // 满了要把添加键去掉
    if(chefnum>5){
        addchef.style.display="none";
    }
    addchef_confirm.style.display="none";
});
//如果点击了no。
document.getElementById("no").addEventListener("click",function(){
    addchef_confirm.style.display="none";
});

//等待区顾客复位
let customerReturn=function(){
    setInterval(()=>{
        let i=Math.floor(Math.random()*6);
        if(waiter[i].parentNode.style.display==""){
            if(Math.random()<refresh_rate){//像飞行棋一样,随机到某个范围才复位
                waiter[i].parentNode.style.display="flex";
                today_wait++;
            }
        }
    },1000);
};


//点菜
function choose(Event){
    if(eat<=4){//少于4个才可以点菜
        Event=Event?Event:window.event;
        customer=Event.srcElement ? Event.srcElement : Event.target; //获取到点餐的客人
        order.style.display="flex";//点菜
    }
    else{
        // 就弹出一个窗口（客满了）
        document.querySelector(".table-full").style.display="flex";
        document.getElementById("table-full").addEventListener("click",function(){
            document.querySelector(".table-full").style.display="none";
        });
    }
    
}
//确定下单
function orderyes(){
    let Choose=false;//默认一道菜没点
    let command=[];//记录该顾客的点菜
    for(let i=1;i<=7;i++){
        let Dish=document.getElementById("dish"+i);
        if(Dish.checked)//判断复选框是否选中来扣钱
        {
            //如果主菜有点才算有效点菜
            if(Dish.getAttribute("name")=="dinner"){
                Choose=true;//有点菜
            }
            Dish.checked=false;//别影响了下一顾客点菜
            //记录点菜单
            command.push(Copy(foods[i-1]));
        }
    }
    if(Choose){//真的有点至少一份才行
        order.style.display="none";
        today_person++;
        uptable(command);//确定下单了才上桌
    }
    else{
        document.querySelector(".need-command").style.display="flex";
        document.getElementById("need-command").addEventListener("click",function(){
            document.querySelector(".need-command").style.display="none";
        });
    }
}
//取消下单
function orderno(){
    order.style.display="none";//点菜框消失
    for(var i=1;i<=7;i++){//重置选择框
        document.getElementById("dish"+i).checked=false;
    }
}

//就餐座位的背景颜色
var eaterbgcolor=document.querySelectorAll(".customer-icon");
//随机入座顾客的背景色随机函数
function rnd(m,n){
    return parseInt(Math.random()*(n-m)+m);
};
//上桌
function uptable(require){
    //找空桌子入座
    for(let i=0;i<4;i++){
        if(spare[i]){
            innerCustomer[i].command=require;//记录点菜单
            innerCustomer[i].waitingtime=0;//重置等待时间
            //改完后应该是默认3个菜的，从主菜到凉菜再到饮品
            for(let j=0;j<innerCustomer[i].command.length;j++){
                //菜名显示修改
                let dishtext=document.getElementById("eat"+(i+1)+"_dish"+(innerCustomer[i].command[j].index+1));
                dishtext.style.setProperty('display', 'block', 'important');//这样才能超过父元素的隐藏优先级
                dishtext.textContent=innerCustomer[i].command[j].name;//显示菜名
                dishtext.style.backgroundColor=colors[innerCustomer[i].command[j].type];//设置进度条的颜色
                if(Bin[innerCustomer[i].command[j].index]<=0){//如果该菜无现成的
                    //把点的菜绑定到顾客要上的座位
                    innerCustomer[i].command[j].source=i;
                    //添加菜品到待煮队列
                    CookWait.push(innerCustomer[i].command[j]);
                    //等待时间的累加
                    innerCustomer[i].waitingtime+=innerCustomer[i].command[j].waittime;
                    //要煮的菜才扣成本
                    money-=innerCustomer[i].command[j].price;
                }
                else{//如果该菜已经有现成的
                    dishtext.textContent=dishtext.textContent+"(已完成)";//进度调整
                    innerCustomer[i].reward+= innerCustomer[i].command[j].price;//付费累加
                    Bin[innerCustomer[i].command[j].index]--;//消耗掉该备用菜品
                }
            }
            spare[i]=false;//桌子不空了
            eater[i].src=customer.src;//更换图片
            // 下面这一行是每一个顾客上桌子的时候背景颜色会发生随机的改变，有点长
            eaterbgcolor[i].style.background='linear-gradient(-90deg, rgb('+rnd(0,256)+', '+rnd(0,256)+', '+rnd(0,256)+') 50%, rgb('+rnd(0,256)+', '+rnd(0,256)+', '+rnd(0,256)+') 50%)';
            //以后顾客离开的时候记得把对应的eaterbgcolor[]换回那个默认色。
            innerCustomer[i].seat=i;//记录就餐座位
            innerCustomer[i].name=Math.random().toString(36).slice(-8);//给顾客起个名
            innerCustomer[i].waitingRecord=setTimeout(() => {//给顾客设置不耐烦函数
                if(innerCustomer[i].command.length==0){//如果这个客人已经吃完东西了,就直接离场(自动收钱)
                    eater[i].parentNode.parentNode.getElementsByClassName("income-icon")[0].style.display="none";//隐藏收钱提示
                    money+=innerCustomer[i].reward;//收钱
                    spare[i]=true;//桌子变空
                    eater[i].src="";//头像撤走
                    eaterbgcolor[i].style.background="linear-gradient(-90deg, var(--darkGrey) 50%, var(--lightGrey) 50%)";//回复原色
                    innerCustomer[i].waitingRecord=null;//将不耐烦处理变空
                    return ;
                }
                let income_img=eater[i].parentNode.parentNode.getElementsByClassName("income_img")[0];
                income_img.src="./source/money.png";//上不齐就是收钱的图标
                eater[i].parentNode.parentNode.getElementsByClassName("income-icon")[0].style.display="flex";//显示收钱提示
                for(let j=0;j<7;j++){//隐藏菜名
                    let dishtext=document.getElementById("eat"+(i+1)+"_dish"+(j+1));
                    dishtext.style.display="none";
                }
                eater[i].src="";//头像撤走
                for(let j=0;j<innerCustomer[i].command.length;j++){//将他的所有菜改成无所属
                    innerCustomer[i].command[j].source=-1;
                }
                innerCustomer[i].waitingRecord=null;//将不耐烦处理变空
            }, Math.round(innerCustomer[i].waitingtime*1000*waiting_rate));
            break;
        }
    }
    customer.parentNode.style.display="";
    eat++;
}

//分配菜给用厨师
setInterval(()=>{
    if(CookWait.length>0){
        if(sa4_1.innerHTML=="???"&&CookWait.length>5&&chefnum==6)
        { // 特殊成就 sa4 更新
            sa4_1.innerHTML=sa4_name;
            sa4_2.innerHTML=sa4_description;
        }
        for(let i=0;i<6;i++){//遍历所有厨师
            if(cooker[i]!=null){//工位上有人才做
                if(cooker[i].occupy==null){//如果厨师有空,初始值是null，代表厨师有空
                    cooker[i].occupy=CookWait[0];//将这个厨师被分到的菜的烹饪时间作为厨师的状态。
                    CookWait.shift();//然后这个已经被分配了的菜就可以从待煮系列移除了。
                    today_food++;
                    cuisine(i);
                    break;
                }
            }
        }
    }
},500);

//检查客人是否拿到所有的菜，拿完离场
function Withdraw(target){
    //目前采用手动上桌
    for(let i=0;i<7;i++)//上完菜的进行修改
    {
        let dishtext=document.getElementById("eat"+(target.source+1)+"_dish"+(i+1));
        if(innerCustomer[target.source].command[innerCustomer[target.source].command.indexOf(target)].name==dishtext.textContent)
        {
            dishtext.textContent=dishtext.textContent+"(已完成)";
            break;
        }
    }
    innerCustomer[target.source].command.splice(innerCustomer[target.source].command.indexOf(target),1);//移除点菜单中对应元素
    innerCustomer[target.source].reward+=target.price;//顾客吃了多少菜就要付多少费
    //顾客吃完菜要付钱
    if(innerCustomer[target.source].command.length==0){
        let income_img=eater[target.source].parentNode.parentNode.getElementsByClassName("income_img")[0];
        income_img.src="./source/heart.png";//上齐了心满意足离开
        eater[target.source].parentNode.parentNode.getElementsByClassName("income-icon")[0].style.display="flex";//显示收钱提示
        for(let i=0;i<7;i++)//隐藏菜名
        {
            let dishtext=document.getElementById("eat"+(target.source+1)+"_dish"+(i+1));
            dishtext.style.display="none";
        }
    }
}

// 煮菜(idx工位上的厨师)
function cuisine(idx){
    let count=cooker[idx].occupy.cooktime;//记录烹饪时间
    let bar=chef[idx].getElementsByClassName("chef_Waiting")[0].getElementsByClassName("chef_bar")[0];//获取进度条
    let dishcontent=chef[idx].getElementsByClassName("chef_Waiting")[0].getElementsByClassName("dish_content")[0];//获取菜名显示位置
    bar.style.width="0%";//设置初始进度
    bar.parentNode.style.display="block";//显示进度条
    dishcontent.style.display="inline";//显示字
    dishcontent.innerText=cooker[idx].occupy.name;//显示菜名
    bar.style.backgroundColor=colors[cooker[idx].occupy.type];//设置进度条的颜色
    chef[idx].getElementsByClassName("free")[0].style.display="none";//厨师有事干取消解聘按钮显示
    cookCount[idx]=setInterval(()=>{
        count--;//倒计时
        bar.style.width=((cooker[idx].occupy.cooktime-count)/cooker[idx].occupy.cooktime)*100+"%";//更新进度条
        bar.style.transition="width 1.5s";//设置渐变
        if(count<=0){//进度条渐变处理
            setTimeout(()=>{
                if(cooker[idx].occupy!=null){
                    if(cooker[idx].occupy.source!=-1){//如果点菜顾客未离场，手动上菜
                        delivery[idx].parentNode.style.display="flex";//显示上菜提醒
                    }
                    else{//已离场，自动加入备用队列
                        Bin[cooker[idx].occupy.index]++;//备用菜品增加
                        cooker[idx].occupy=null;//厨师变回空闲
                        chef[idx].getElementsByClassName("free")[0].style.display="block";//厨师空闲将解聘变为可用状态
                    }
                }
                bar.parentNode.style.display="none";//隐藏进度条
                dishcontent.style.display="none";//隐藏字
                clearInterval(cookCount[idx]);//结束清理函数
            },1500); 
        }
    },1500);//这样效果好一点
}

// 手动上菜函数
function deliver(Event){
    Event=Event?Event:window.event;
    obj=Event.srcElement ? Event.srcElement : Event.target; //获取到要上菜的厨师
    let target=obj.parentNode.parentNode.parentNode;//获取厨师框
    let idx=chef.indexOf(target);//获取厨师下标
    chef[idx].getElementsByClassName("free")[0].style.display="block";//厨师空闲将解聘变为可用状态
    obj.parentNode.style.display="none";//隐藏上菜提醒
    if(cooker[idx].occupy.source==-1){//如果这个做好的菜的客人已经走了就不上
        Bin[cooker[idx].occupy.index]++;//存储下标
    }
    else{//否则上桌
        Withdraw(cooker[idx].occupy);//检测是否撤桌
    }
    cooker[idx].occupy=null;//厨师变回空闲
}

// 开启/关闭成就系统
let AS_button=document.getElementById("AS_button");
let achievement_system=document.getElementById("achievement_system");
AS_button.addEventListener('click',function(){
    if(achievement_system.style.display=="none")
        achievement_system.style.display="block";
    else
        achievement_system.style.display="none";
});

// 成就变量统计

var today_wait=0;
var today_person=0; // 每日接待顾客人数
var today_food=0; // 每日煮菜数量

var na1_day=1; // 游戏天数
var na1=document.getElementById("na1");
var na2_money=1000; // 最大资本数
var na2=document.getElementById("na2");
var na3_all_person=0; // 总接待顾客数量
var na3=document.getElementById("na3");
var na4_all_food=0; // 总煮菜数量
var na4=document.getElementById("na4");
var na5_per_person=0; // 单日最多接待顾客数量
var na5=document.getElementById("na5");
var na6_per_food=0; // 单日最多煮菜数量
var na6=document.getElementById("na6");

var sa1_name="休息日";
var sa1_description="一天之内没有接待任何顾客";
var sa1_1=document.getElementById("sa1_1");
var sa1_2=document.getElementById("sa1_2");
var sa2_name="门可罗雀";
var sa2_description="一天之内没有顾客上门";
var sa2_1=document.getElementById("sa2_1");
var sa2_2=document.getElementById("sa2_2");
var sa3_name="破釜沉舟";
var sa3_description="游戏结束时厨师数量为0";
var sa3_1=document.getElementById("sa3_1");
var sa3_2=document.getElementById("sa3_2");
var sa4_name="火力全开";
var sa4_description="六位厨师同时为出餐奋斗";
var sa4_1=document.getElementById("sa4_1");
var sa4_2=document.getElementById("sa4_2");

// 成就系统界面的底部 重玩游戏
let game_restart=document.getElementById("game_restart");
game_restart.addEventListener('click',function(){
    location.reload();
});

// 成就系统界面的底部 结束游戏
let game_over=document.getElementById("game_over");
game_over.addEventListener('click',function(){
    if(sa1_1.innerHTML=="???")
        sa1_1.innerHTML=sa1_name+" （未达成）";
    if(sa2_1.innerHTML=="???")
        sa2_1.innerHTML=sa2_name+" （未达成）";
    if(sa3_1.innerHTML=="???")
        sa3_1.innerHTML=sa3_name+" （未达成）";
    if(sa4_1.innerHTML=="???")
        sa4_1.innerHTML=sa4_name+" （未达成）";
    var all_element = document.querySelectorAll('main >*');
    Array.from(all_element).forEach(function(each_element){
        each_element.style.display="none";
    });
    document.body.style.background="none";
    document.getElementById("game_over_div").style.display="none";
    document.getElementById("close_AS_button_div").style.display="none";
    document.getElementById("game_restart_div").style.margin="auto";
    document.getElementById("achievement_system").style.display="block";
});

// 成就系统界面的底部 关闭成就系统
let close_AS_button=document.getElementById("close_AS_button");
close_AS_button.addEventListener('click',function(){
    achievement_system.style.display="none";
});